Skip to main content

StartActivityForResult

Type

handler

Summary

Start an activity by Intent

Syntax

StartActivityForResult(<pIntent>,<pRequestCode>,<pHandler>)

Description

Start an activity by Intent and receive a callback to the specified handler when the LiveCode activity receives the result via the onActivityResult method.

The callback must conform to the OnActivityResultHandler type which returns nothing and has parameters:

  • in pRequestCode as JInt
  • in pResultCode as JInt
  • in pIntent as optional JObject

Parameters

NameTypeDescription

pIntent

An Intent JObject to use to start an activity

pRequestCode

A positive integer used to identify the request when handling onActivityResult.

pHandler

A handler that conforms to the OnActivityResultHandler type

Examples

constant kIntentACTION_SEND is "android.intent.action.SEND"
constant kIntentEXTRA_TEXT is "android.intent.extra.TEXT"
constant kActivityRESULT_CANCELED is 0
constant kShareStringRequestCode is 123

__safe foreign handler _JNI_IntentNew(in pAction as JString) \
returns JObject \
binds to "java:android.content.Intent>new(Ljava/lang/String;)"

__safe foreign handler _JNI_IntentSetType(in pIntent as JObject, \
in pType as JString) \
returns JObject \
binds to "java:android.content.Intent>setType(Ljava/lang/String;)Landroid/content/Intent;"

__safe foreign handler _JNI_IntentPutExtraString(in pIntent as JObject, \
in pType as JString, \
in pValue as JString) \
returns JObject \
binds to "java:android.content.Intent>putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;"

handler _ShareStringResultListener( \
in pRequestCode as JInt, \
in pResultCode as JInt, \
in pIntent as optional JObject) returns nothing

if pResultCode is kActivityRESULT_CANCELED then
post "shareStringCancelled"
else
post "shareStringComplete"
end if
end handler

public handler ShareString(in pString as String) returns nothing
variable tIntent as JObject
put _JNI_IntentNew(StringToJString(kIntentACTION_SEND)) into tIntent

_JNI_IntentSetType(tIntent, StringToJString("text/plain"))

_JNI_IntentPutExtraString( \
tIntent, \
StringToJString(kIntentEXTRA_TEXT), \
StringToJString(pString))

StartActivityForResult( \
tIntent, \
kShareStringRequestCode, \
_ShareStringResultListener)
end handler

Compatibility and Support

OS

android